Media content transfer method and apparatus (aka shadow cache)

ABSTRACT

Additional version or versions of a media content is pre-generated on a first client device, after downloading the media content onto the first client device, but prior to the first client device receiving a request to provide the media content to a second client device.

FIELD OF THE INVENTION

The present invention relates generally to the fields of data processingand digital media transfer.

BACKGROUND OF THE INVENTION

Advances in microprocessor and related technologies have led to widespread deployment and adoption of numerous general purpose as well asspecial purpose computing devices. General purpose computing devices,such as servers and desktop computers, are now endowed with computingpower that was once reserved for the most expensive high end computers,requiring special conditioned environment to operate. Resultantly, manymodern general purpose computing devices are multi-media, i.e. video,audio and graphics, enabled. Special purpose computing devices nowinclude but are not limited to digital camcorders, digital versatiledisk (DVD) players, personal digital assistants, wireless mobile phones,portable media players, and so forth.

Advances in networking, telecommunication, satellite, content servingand other related technologies have also led to increase in onlinemulti-media content provision, including on demand and/or real timeonline delivery of video/or audio content, over private as and/or publicnetworks, such as the Internet.

For certain media content, e.g. audio, increasingly a user may firstaccess or consume the content via a primary client device, such as theuser's desktop computer, and then later consume the content via asecondary client device, such as the user's portable media player. Veryoften, a user would first acquire the performance rights for thecontent, and download a version of the content onto the primary clientdevice from a remote content provider, and then subsequently transfer acopy of the content onto the secondary client device from the primaryclient device.

Typically, the secondary client device is computationally less capablethen the primary client device. As a result, the secondary client deviceoften requires a version of the content that is less computationallyintensive to render. In turn, content providers often have to offermultiple versions of the content, with some versions offering betterquality/fidelity, but requiring more computational capabilities of therendering devices, while other versions offer less quality/fidelity, butrequiring less computational capabilities of the rendering devices.

Therefore, under the current state of the art, users who would like toenjoy contents on a variety of devices, often have to be cognizant ofthe differences in the version requirements of the different devices,and appropriately download and manage the various versions. The approachis network bandwidth inefficient, since multiple downloads are performedfor the same media content, and user unfriendly, since the user has tomanage the different versions.

Alternatively, some users elect to just work with, and enjoy the lowestcommon denominator of the users' devices, sacrificing quality/fidelityon the more computational capable devices. While this approach is morenetwork bandwidth efficient, and user friendly in the sense that theuser does not have to manage multiple versions, it offers the user alesser experience when enjoying the content on the user's primary clientdevice.

In other implementations, primary client devices are provided withtranscoding capabilities, enabling a user to download and enjoy thehigher quality/fidelity versions onto their primary client devices.Subsequently, when a user wants to transfer a copy of a downloadedcontent onto a secondary client device, the user would manually invokethe transcoding capability and instruct the transcoding function togenerate a computational less intensive version (with lowerquality/fidelity). While this approach is also more network bandwidthefficient, and more user friendly in that the user may enjoy higherquality/fidelity on his/her primary client device, it is stillnonetheless user unfriendly in that it requires the user to be cognizantof, and manage the multiple versions.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will be described by way of exemplary embodiments,but not limitations, illustrated in the accompanying drawings in whichlike references denote similar elements, and in which:

FIG. 1 illustrates an overview of the invention, in accordance withvarious embodiments;

FIG. 2 illustrates a flow chart view of the download portion of theoperational flow of the media manager of FIG. 1 in accordance withvarious embodiments;

FIG. 3 illustrates one aspect of a user interface to facilitate a userin requesting transfer of a media content from the primary client deviceto a secondary client device, in accordance with various embodiments;

FIG. 4 illustrates a flow chart view of the provision portion of theoperational flow of the media manager of FIG. 1 in accordance withvarious embodiments;

FIG. 5 illustrates an example computing device suitable for practicingthe invention, in accordance with various embodiments;

FIG. 6 illustrates an example storage device incorporated with animplementation of the media manager of FIG. 1, in accordance withvarious embodiments; and

FIG. 7 illustrates an example circuit board/ASIC incorporated with animplementation of the media manager of FIG. 1, in accordance withvarious embodiments.

DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS

Illustrative embodiments of the present invention include but are notlimited to methods for transferring media content from media contentproviders to client devices, and apparatuses adapted to practice thesemethods in part or in whole.

Various aspects of the illustrative embodiments will be described usingterms commonly employed by those skilled in the art to convey thesubstance of their work to others skilled in the art. However, it willbe apparent to those skilled in the art that alternate embodiments maybe practiced with only some of the described aspects. For purposes ofexplanation, specific numbers, materials, and configurations are setforth in order to provide a thorough understanding of the illustrativeembodiments. However, it will be apparent to one skilled in the art thatalternate embodiments may be practiced without the specific details. Inother instances, well-known features are omitted or simplified in ordernot to obscure the illustrative embodiments.

Further, various operations will be described as multiple discreteoperations, in turn, in a manner that is most helpful in understandingthe illustrative embodiments; however, the order of description shouldnot be construed as to imply that these operations are necessarily orderdependent. In particular, these operations need not be performed in theorder of presentation.

The phrase “in one embodiment” is used repeatedly. The phrase generallydoes not refer to the same embodiment; however, it may. The terms“comprising”, “having”, and “including” are synonymous, unless thecontext dictates otherwise.

Client devices are designated as “primary” and “secondary” only for easeof understanding. While in general, primary client devices are typicallymore computationally capable than secondary client devices, however thepresent invention is not so limited. In various embodiments, the presentinvention may nonetheless be practiced with the secondary client deviceshaving the same or greater computational capabilities. The difference inthe version requirements may be caused by other factors, e.g.manufacturer preferences, that is the primary client device ismanufactured by a manufacturer with one version preference, while thesecondary client device is manufactured by another manufacturer withanother version preference. In various implementations, themanufacturers may even be the same manufacturer.

Referring now to FIG. 1, wherein an overview of the present invention,in accordance with various embodiments, is shown. As illustrated,primary client device 112 is endowed with media manager 116, which aswill be explained in more detail below, is endowed with certainfunctions that enable the user to download 106 a media content 104 ontoprimary client device 112 from a media content server 102 only once, andyet be able to enjoy the media content 104 on the primary as well as thesecondary client devices 112 and 132, at quality/fidelity levels thatmay be the highest the respective devices 112 and 132 can support.

The various embodiments are not only network bandwidth and user friendlyin that a media content 104 is downloaded 106 once and may be consumedat the devices' maximum capabilities, the embodiments may also be userfriendly in that the users are likely not required to be cognizant ofthe difference in version requirements of the two devices 112 and 132(if there is a difference between their version requirements). Invarious embodiments, these differences may be differences in format,encoding and/or the manner digital right is managed.

Media content 104 represent a broad range of media content known in theart or to be designed (as long as they are consistent with the teachingsof the present invention), including but are not limited to video, audioand/or graphic contents. Media content 104 may be packaged in any numberof formats and/or encoding schemes known in the art or to be designed(as long as they are consistent with the teachings of the presentinvention). For example, the downloaded media content 104 may be encodedin the MPEG3 format, and the derivative version may be encoded in theMP3 format. Similarly, the digital rights of media content 104 may bemanaged in any number of manners known in the art or to be designed (aslong as they are consistent with the teachings of the presentinvention). [MPEG=Moving Picture Experts Group.]

Continuing to refer to FIG. 1, in various embodiments, media manager 116is endowed with a download function 118 that is adapted to negotiatewith media content server 102 to download 106 a version of a content 104that exploits the computational capabilities of primary client device112 as much as possible. Additionally, media manager 116 is endowed withtranscoding capabilities 120 that are proactively invoked by mediamanager 116 to generate additional versions 114 of a downloaded mediacontent 104, prior to media manager 116 receiving a request (e.g. fromthe user) to transfer 124 a copy of the media content 114 to secondaryclient device 132. Further, media manager 116 is endowed with transferfunction 122 to transfer an appropriate version of a selected mediacontent 114 onto secondary client device 132 from primary client device112.

In various embodiments, primary client device 112 is coupled with mediacontent server 102 via one or more wired or wireless networks, which maybe private and/or public networks, including but not limited to theInternet. Primary and secondary client devices 112 and 132 on the otherhand, are coupled to each other via a parallel or a serial connection.In various embodiments, the serial connections may be a Universal SerialBus (USB) connection or a IEEE 1394 Serial Bus connection(IEEE=Institute of Electrical and Electronic Engineers). In alternateembodiments, primary and secondary client devices 112 and 132 may becoupled via a wired or wireless local area network connection instead.

Except for media manager 116, media content server 102, primary clientdevice 112 and secondary client device 132 represent a broad range ofthese devices known in the art or to be designed, consistent with theteachings of the present invention. Examples of media content servers102 include but are not limited to servers available from companies suchas Hewlett Packard of Palo Alto, Calif., and Sun Microsystems of MenloPark, Calif. The media content servers 102 may e.g. be operated by mediacontent providers, such as RealNetworks of Seattle, Wash. In variousembodiments, primary client devices 112 may be a set-top box availablee.g. from Samsung Corporation of Seoul, Korea or a desktop computeravailable from Dell Computer of Austin, Tex. In various embodiments,secondary client devices 112 may be a portable media player availablefrom e.g. Apple Computer of Cupertino, Calif.

FIG. 2 illustrates a flow chart view of a portion of the operationalflow of download function 118 of media manager 116, in accordance withvarious embodiments. As illustrated, in response to a request todownload a media content 104 from a media content server 102, mediamanager 116 downloads the requested media content 104 onto primaryclient device 112 from media content server 102 accordingly, block 206.

In various embodiments, media manager 116 effectuates the download overan established network connection between primary client device 112 andmedia content server 102, using communication services available onprimary client device 112. In various embodiments, the networkconnection may be a HTTP connection (HTTP=Hypertext TransmissionProtocol).

In various embodiments, media manager 116 is endowed with thecapabilities to discover the various versions available from mediacontent server 102, and request for the highest version (in terms ofquality/fidelity) primary client device 112 is capable of supporting. Invarious embodiments, media manager 116 may be adapted to prompt and beprovided with such information, i.e. the highest version (in terms ofquality/fidelity) primary client device 112 is capable of supporting,during installation. In other embodiments, media manager 116 may beadapted to allow such information be configurable by e.g. a user, postinstallation. In still other embodiments, media manager 116 may beendowed with the capability to determine the capability of primaryclient device 112 by discovering the capabilities of the variouscomponents of primary client device 112, such as the computing power ofits processor, the data transfer capability of its internal datatransfer channels, the amount of volatile and persistent storageavailable and so forth. Generally, higher quality/fidelity of mediacontent may be supported with correspondingly higher computing power,faster data transfer capability, and/or larger amount ofvolatile/persistent storage available. The relationships may e.g. beempirically determined and pre-provided to media manager 116.

Continuing with FIG. 2, for the embodiments, media manager 116 isadapted to maintain a directory of the downloaded collection of mediacontent 104. Accordingly, for the embodiments, media manager 116 updatesthe directory of its downloaded collection accordingly, block 206.

As described earlier, in various embodiment's, media manager 116 isfurther adapted to proactively generate a number of derivative versions114 of a downloaded media content 104, prior to receiving a request(e.g. from a user) to transfer a copy of the downloaded media content104 to secondary client device 132, block 208.

In various embodiments, media manager 116 is adapted to generate apredetermined number of derivative versions 114 that differ from eachother in formats, encoding and/or the manner digital rights are managed.In various embodiments, the derivative versions 114 are the likelyversions required by secondary client device 132. The derivativeversions 114 may be the versions required by the most popular portablemedia players, without taking into consideration the device type ofprimary client device 112. In other embodiments, the device type ofprimary client device 112 may be taken into consideration to infer thelikely device type of secondary client device 132, e.g. primary clientdevice 112 has a proprietary architecture requiring a particular type ofsecondary client device 132.

In various embodiments, a user may be offered the option of customizingthe proactive generation by specifying the derivative versions to beproactively generated, or specifying one or more device types for thesecondary client devices (based on which, the media manager 116determines the derivative version to be proactively generated).

As illustrated in FIG. 2, for the embodiments, media manager 116 isfurther adapted to update its collection information, each time anadditional derivative version 114 is generated. In various embodiments,media manager 116 immediately generates the derivative versions as partof the download process. In other embodiments, media manager 116schedules the transcoding/generation as background tasks, as soon as amedia content 104 is downloaded. In various embodiments where prioritymay be assigned to background task, media manager 116 may further assignequal or descending priorities to the background tasks.

In various embodiments, to facilitate ease of subsequent retrieval, thedownloaded versions and the proactively generated derivative versions ofthe media content files are stored together in a common repository orfolder (also referred to as a cache). In various embodiments, a globallyunique identifier (GUID) is generated and assigned to each version ofeach media content file. In various embodiments, the GUIDs of thederivative versions are generated, based at least in part on the GUID ofthe download version, employing a deterministic algorithm. Thedeterministic algorithm may be any one of a number of hashing schemes.

In various embodiments, the user may be offered a facility toselectively delete the proactively generated derivative versions of amedia content file. In various embodiments, the proactively generatedderivative versions of a media content file may also be deleted, whenthe downloaded version of the media content file is deleted by the user.

FIG. 3 illustrates a portion of an end user interface, media manager 116employs to facilitate a user of primary client device 112 to requesttransfer of a media content 104 to secondary client device 132, inaccordance with some embodiments. As illustrated, for the embodiments,notwithstanding the fact that media manager 116 have in possession ofmultiple versions 114 of media contents 104, media manager 116 presentseach title for selection in a selection list 302 by a user only once.That is, for these embodiments, the user is shielded from having to becognizant of the various available versions 114 of the downloaded mediacontents 104. The collection of the various versions 114 operates like acache in the shadow, hidden from the user.

In various embodiments, select list 302 may simply be an ascending ordescending listing of all titles of media contents 104, downloaded ontoprimary client device 112. In other embodiments, select list 302 may bea selected subset of media contents 104 downloaded onto primary clientdevice 112, based on any one of a number of selection criteria, such asmedia content types (video, audio and so forth), music types (rock nroll, country western and so forth), video types (drama, comedy and soforth). In various embodiments, the selection criteria may be providedby the user. In still other embodiments, select list 302 may excludetitles previously transferred onto secondary client device 132.

FIG. 4 illustrates a flow chart view of a portion of the operationalflow of transfer function 122 of media manager 116, in accordance withvarious embodiments. As illustrated, in response to the receipt of arequest to transfer a media content 104 from primary client device 112to secondary client device 132, transfer function 122 determines theappropriate version 114 to be transferred, block 402. In variousembodiments, the appropriate version 114 is the version having theappropriate format, encoding and/or digital right management.

In various embodiments, transfer function 122 infers the appropriateversion 114 based on the device type of secondary client device 132. Inother embodiments, transfer function 122 determines the appropriateversion 114, by requesting the information from secondary client device132.

While the present invention is being described with the aboveembodiments where media manager 116 is endowed with the capabilities tofree the user from having to be cognizant of the version requirement ofsecondary client device 132, nonetheless, a portion of the benefits ofthe present invention may still be realized (e.g. operationalefficiency), even if the present invention is practiced with the userspecifying the device type of secondary client device 132 or even theappropriate version requirement of secondary client device 132.

Continuing to refer to FIG. 4, as illustrated, on determining theappropriate version 114 of the selected media content 104, transferfunction 122 determines if the appropriate version 114 has beengenerated, block 404. If so, transfer function 122 proceeds to transferthe appropriate version 114 to secondary client device 132, block 408.Thus, in most embodiments, the user may experience improved transferperformance, as the required appropriate version 114 is readilyavailable.

However, if appropriate version 114 has not been generated, for whateverreasons, e.g. the version was not among the predetermined versions to beproactively pre-generated, or the transfer request came in before theproactive pre-generation is completed, transfer function 122 invokestranscode function 120 to generate (or complete generating) the requiredversion 114, block 406, before proceeding to transfer the appropriateversion 114 to secondary client device 132, block 408. In variousembodiments, the on-demand generated versions are added to the otherproactively pre-generated versions, and made available for subsequentre-selection and additional transfer to the same or other secondaryclient devices.

FIG. 5 illustrates a block diagram view of an example computing devicesuitable for use as primary client device 112 to practice the presentinvention, in accordance with one embodiment. As illustrated, computingdevice 500 includes processor 502, memory 504 coupled to each other viabus 512. Further, computing device 500 also includes mass storage device506. I/O devices 508, and communication interface 510 coupled to theearlier described elements as shown.

Each of the elements represents a broad range of the correspondingelement known in the art or to be designed consistent with the teachingsof the present invention. They perform their conventional functions,i.e. processing, storage, and so forth. In particular, memory 504 andmass storage 506 are employed to store temporal and persistent copies ofmedia manager 116 respectively.

In various embodiments, communication interface 510 includes anetworking interface as well as a serial interface, and computing device500 is desktop computer, set-top box, or an entertainment control unit.

FIG. 6 illustrates an example storage medium 602 endowed with mediamanager 116, in accordance with some embodiments. In variousembodiments, the endowed media manager 116 is a software implementation,and it may be used to program a computing device to practice the earlierdescribed methods, or aspects thereof.

FIG. 7 on the other hand illustrates an example hardware implementation,where circuit board 702 is endowed with an ASIC 704 having media manager116. In various embodiments, circuit board 702 may be incorporated intovarious systems, to enable the systems to practice the earlier describedmethods, or aspects thereof. [ASIC=Application Specific IntegratedCircuit.]

Although specific embodiments have been illustrated and describedherein, it will be appreciated by those of ordinary skill in the artthat a wide variety of alternate and/or equivalent implementations maybe substituted for the specific embodiments shown and described, withoutdeparting from the scope of the present invention. This application isintended to cover any adaptations or variations of the embodimentsdiscussed herein. Therefore, it is manifestly intended that thisinvention be limited only by the claims and the equivalents thereof.

1. A method comprising: downloading a first version of a media contentonto a first client device from a media content server; and the firstclient device automatically pre-generating a second version of the mediacontent on the first client device, prior to the first client devicereceiving a request to provide a second client device with the mediacontent, the first and second versions being different in at least oneaspect selected from the group consisting of a format aspect, anencoding aspect, and a digital right management aspect.
 2. The method ofclaim 1, wherein the first and second versions have different formats.3. The method of claim 1, wherein the media content of the first andsecond versions are encoded differently.
 4. The method of claim 1,wherein the digital rights of the media content of the first and secondversions are managed differently.
 5. The method of claim 1, wherein thefirst version is a MPEGn version, and the second version is a MP3version.
 6. The method of claim 1, wherein the method further comprisesgenerating an identifier for the second version of the media content,based at least in part on an identifier of the first version of themedia content.
 7. The method of claim 1, wherein the method furthercomprises receiving an indication to delete the first version of themedia content, and deleting, in response, the first and the secondversion of the media content.
 8. The method of claim 1, furthercomprising the first client device automatically pre-generating a thirdversion of the media content on the first client device, prior to thefirst client device receiving a request to provide a second clientdevice with the media content, the first, second and third versionsbeing different from each other in at least one aspect selected from thegroup consisting of a format aspect, an encoding aspect, and a digitalright management aspect.
 9. The method of claim 1, further comprisingthe first client device determining an appropriate version of the mediacontent to be provided from the first client device to the second clientdevice.
 10. The method of claim 9, wherein said determining comprisesthe first client device receiving (a) a specification of the appropriateversion from a selected one of a user and the second client device, or(b) a specification of a device type for the second client device from aselected one of a user and the second client device, and inferring theappropriate version from the received specification.
 11. The method ofclaim 9, wherein the method further comprises dynamically generating theappropriate version of the media content in real time, when nopre-generated versions, including the first and second versions, isdetermined to be the appropriate version.
 12. An article of manufacturecomprising a storage medium; and a plurality of instructions stored inthe storage medium, adapted to enable an apparatus programmed with theinstructions to practice the method of claim
 1. 13. The article of claim12, wherein the first and second versions have different formats. 14.The article of claim 12, wherein the media content of the first andsecond versions are encoded differently.
 15. The article of claim 12,wherein the digital rights of the media content of the first and secondversions are managed differently.
 16. A system comprising a storagemedium having stored therein a plurality of instructions stored in thestorage medium, adapted to enable the system to practice the method ofclaim 1; and a processor coupled to the storage medium to execute theinstructions.
 17. The system of claim 16, wherein the first and secondversions have different formats.
 18. The system of claim 16, wherein themedia content of the first and second versions are encoded differently.19. The system of claim 16, wherein the digital rights of the mediacontent of the first and second versions are managed differently. 20.The system of claim 16, wherein the system comprise a selected one fromthe group consisting of a set-top box, an entertainment control unit, adesktop computer and a laptop computer.
 21. A method comprising:receiving by a first client device, a request to transfer a copy of amedia content to a second client device; determining by the first clientdevice, an appropriate one among a plurality of pro-activelypre-generated versions of the media content to transfer to the secondclient device, the proactively pre-generated versions of the mediacontent being different in at least one aspect selected from the groupconsisting of a format aspect, an encoding aspect, and a digital rightmanagement aspect; and transferring the determined appropriate one ofthe pro-actively pre-generated versions of the media content to thesecond client device.
 22. The method of claim 21, wherein a first and asecond of the plurality versions have different formats.
 23. The methodof claim 21, wherein the media content of a first and a second of theplurality of versions are encoded differently.
 24. The method of claim21, wherein the digital rights of the media content of a first and asecond of the plurality of versions are managed differently.
 25. Themethod of claim 21, wherein said determining comprises the first clientdevice receiving (a) a specification of an appropriate version from aselected one of a user and the second client device, or (b) aspecification of a device type for the second client device from aselected one of a user and the second client device, and inferring theappropriate version from the received specification.
 26. The method ofclaim 21, wherein the method further comprises dynamically generating anappropriate version of the media content in real time, if none of thepro-actively pre-generated versions is determined to be the appropriateone, and said transmitting comprises transmitting the dynamicallygenerated version instead.
 27. An article of manufacture comprising astorage medium; and a plurality of instructions stored in the storagemedium, adapted to enable an apparatus programmed with the instructionsto practice the method of claim
 21. 28. A system comprising a storagemedium having stored therein a plurality of instructions stored in thestorage medium, adapted to enable the system to practice the method ofclaim 21; and at least one processor coupled to the storage medium toexecute the instructions.
 29. The system of claim 28, wherein the systemcomprise a selected one from the group consisting of a set-top box, anentertainment control unit, a desktop computer and a laptop computer.